1701B - Permutation - CodeForces Solution


greedy *800

Please click on ads to support us..

Python Code:

x = int(input())
for jj in range(x):
    n = int(input())
    ans = [0] * n
    t = set(range(1,n+1))
    k = 0
    for j in range(1,n+1):
        i = j
        while i in t:
            t.remove(i)
            ans[k] = i
            k += 1
            i *= 2
    print(2)
    print(' '.join([str(p) for p in ans]))

C++ Code:

#include<bits/stdc++.h>

using namespace std;

void solve() {
    int n;
    cin >> n;
    cout << 2 << endl;
    vector<bool> kt(n + 1, false);
    for (int i = 1; i <= n; i++){
        if (kt[i]) continue;
        int now = i;
        while (now <= n){
            cout << now << " ";
            kt[now] = true;
            now *= 2;
        }
    }
    cout << endl;
}

int main() {
    int t;
    cin >> t;
    while (t--) solve();
}


Comments

Submit
0 Comments
More Questions

122A - Lucky Division
1611C - Polycarp Recovers the Permutation
432A - Choosing Teams
758A - Holiday Of Equality
1650C - Weight of the System of Nested Segments
1097A - Gennady and a Card Game
248A - Cupboards
1641A - Great Sequence
1537A - Arithmetic Array
1370A - Maximum GCD
149A - Business trip
34A - Reconnaissance 2
59A - Word
462B - Appleman and Card Game
1560C - Infinity Table
1605C - Dominant Character
1399A - Remove Smallest
208A - Dubstep
1581A - CQXYM Count Permutations
337A - Puzzles
495A - Digital Counter
796A - Buying A House
67A - Partial Teacher
116A - Tram
1472B - Fair Division
1281C - Cut and Paste
141A - Amusing Joke
112A - Petya and Strings
677A - Vanya and Fence
1621A - Stable Arrangement of Rooks